import moment from "moment"

/**
 * 将时间戳转成可视时间格式
 * @param {*} param0 
 * @returns 
 */
export const formatTimeStampToNormal = (value) => {
    if(!value || !isFinite(value)) return ''
    return moment(+value).format('YYYY-MM-DD HH:mm:ss')
}

/**
 * 将秒值转成可视时间格式
 * @param {*} value 
 * @returns 
 */
export const formatSecondToNormal = (value) => {
    if(!value || !isFinite(value)) return ''
    return moment(+value * 1000).format('YYYY-MM-DD HH:mm:ss')
}


/**
 * 将单位米转成可视化单位格式
 * @param {*} param0 
 * @returns 
 */
export const formatMeterToUnit = (value) => {
    if(!value || !isFinite(value)) return '0m'
    const kilometre = (value / 1000).toFixed(1)
    const tenThousand = (kilometre / 10000).toFixed(1)
    if(tenThousand > 1) {
        return `${ tenThousand }WKm`
    } else {
        if(kilometre > 1) {
            return `${ kilometre }Km`
        } else {
            return `${ value }m`
        }
    }
}

/**
 * 将单位米转成可视化文字格式
 * @param {*} param0 
 * @returns 
 */
export const formatMeterToNormal = (value) => {
    if(!value || !isFinite(value)) return '0米'
    const kilometre = (value / 1000).toFixed(1)
    const tenThousand = (kilometre / 10000).toFixed(1)
    if(tenThousand > 1) {
        return `${ tenThousand }万千米`
    } else {
        if(kilometre > 1) {
            return `${ kilometre }千米`
        } else {
            return `${ value }米`
        }
    }
}

/**
 * 文件大小格式化
 * @param {*} param0 
 * @returns 
 */
export const changeFileSizeUnit = (value) => {
    let kb = 1024
    let unit = ['B','KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
    let i = Math.floor(Math.log(value) / Math.log(kb))
    return (value / Math.pow(kb, i)).toPrecision(3) + ' ' + unit[i];
}


/**
 * 时间格式转换
 * @param {*} param0 
 * @returns 
 */
export const changeSecondUnit = (value) => {
    var secondTime = parseInt(value); // 秒
    var minuteTime = 0; // 分
    var hourTime = 0; // 小时
    if (secondTime > 60) { //如果秒数大于60，将秒数转换成整数
        //获取分钟，除以60取整数，得到整数分钟
        minuteTime = parseInt(secondTime / 60);
        //获取秒数，秒数取佘，得到整数秒数
        secondTime = parseInt(secondTime % 60);
        //如果分钟大于60，将分钟转换成小时
        if (minuteTime > 60) {
            //获取小时，获取分钟除以60，得到整数小时
            hourTime = parseInt(minuteTime / 60);
            //获取小时后取佘的分，获取分钟除以60取佘的分
            minuteTime = parseInt(minuteTime % 60);
        }
    }
    var result = "" + parseInt(secondTime) + "秒";
    if (minuteTime > 0) {
        result = "" + parseInt(minuteTime) + "分" + result;
    }
    if (hourTime > 0) {
        result = "" + parseInt(hourTime) + "小时" + result;
    }
    return result
}


/**
 * 将米 / 秒 转成千米每小时
 * @param {*} meter 
 * @param {*} second 
 * @returns 
 */
export const transeMsToKMh = (meter, second) => {
    if(!meter) return 0
    const km = meter / 1000
    const hour = second / 3600
    const kmh = (km / hour).toFixed(1)
    return kmh
}